package com.yangxk.kadmin.web.module.system.service;

import com.yangxk.kadmin.common.base.BaseService;
import com.yangxk.kadmin.common.beans.Page;
import com.yangxk.kadmin.web.module.system.form.RoleEditForm;
import com.yangxk.kadmin.web.module.system.form.RoleQueryForm;
import com.yangxk.kadmin.web.module.system.po.Role;
import com.yangxk.kadmin.web.module.system.vo.RoleAuthVo;
import com.yangxk.kadmin.web.module.system.vo.RoleDeptVo;

import java.util.List;

public interface RoleService extends BaseService<Role, Long>{

    Page<Role> queryByPage(RoleQueryForm roleQueryForm);

    /**
     * 添加角色
     * create by yangxk on 2018/10/16 16:14
     */
    long addRole(RoleEditForm form);

    /**
     * 修改角色
     * create by yangxk on 2018/10/16 16:14
     */
    long updateRole(RoleEditForm form);

    /**
     * 删除角色
     * create by yangxk on 2018/10/16 16:35
     */
    void deleteRole(long id);

    /**
     * 分配权限
     * create by yangxk 2018/10/14 14:36
     */
    List<Long> setAuth(long roleId, Long[] authIds);

    /**
     * 为角色添加权限
     * create by yangxk on 2018/10/22 14:57
     */
    List<Long> addAuth(long roleId, List<Long> authIds);

    /**
     * 查询角色权限ID集合
     * create by yangxk 2018/10/14 15:14
     */
    RoleAuthVo findRoleAuth(long roleId);

    /**
     * 查询角色的数据权限(部门)
     * create by yangxk on 2019/2/2 17:41
     */
    RoleDeptVo findRoleDept(long roleId);

    /**
     * 为角色设置数据权限(deptId)
     * create by yangxk on 2019/2/2 17:46
     */
    void setDept(long roleId, Long[] deptIds);
}
